ホームに戻る
出典 :
関連 :
目次 :
ウィンドウの表示に関するプロパティ
WPFにおける、ウィンドウ表示に関連するプロパティを以下に記す。Windows Formsとは一部プロパティ名が異なる。
WindowStyle : ウィンドウの境界線
WindowStyle プロパティはウィンドウの境界線(枠)を規定する。
型は WindowStyle 列挙型、既定値は SingleBorderWindow 。
- None :
クライアント領域のみが表示され、タイトルバーと境界線が表示されない。ウィンドウを最大化した場合はクライアント領域のみが全画面に表示される。

- SingleBorderWindow :
平面的な枠。既定値。

- SingleBorderWindow :
立体的な枠。

- ToolWindow :
固定ツールウィンドウ。

ResizeMode : ウィンドウのリサイズ可否
ResizeMode プロパティはウィンドウのリサイズの可否を規定する。
型は ResizeMode 列挙型、既定値は CanResize 。
設定値 |
概略 |
リサイズ |
最小化ボタン |
最大化ボタン |
NoResize |
リサイズ不可。最大化、最小化ボタンが表示されない。 |
不可 |
非表示 |
非表示 |
CanMinimize |
最小化のみ可能。最大化ボタンは表示されるが無効。 |
不可 |
有効 |
無効 |
CanResize |
既定値。リサイズ、最小化、最大化が可能。 |
可 |
有効 |
有効 |
CanResizeWithGrip |
CanResize に加え、リサイズ可能であることを示すグリップが右下隅に表示される。 |
可 |
有効 |
有効 |
WindowState : ウィンドウの表示状態
ウィンドウが元のサイズにあるか、最大化、または最小化されているかを示す。
型は WindowState 列挙型、既定値は Normal 。
- Normal : 既定値。ウィンドウを元のサイズに戻す。
- Minimized : ウィンドウを最小化する。
- Maximized : ウィンドウを最大化する。
元のサイズの保持と復元
最大化、最小化を行う直前の元のサイズは RestoreBounds プロパティに格納され、復元時にその値を使用する。
表示状態変更時のイベント
WindowState の値が変化した場合、 StateChanged イベントが発生する。
SizeToContent : ウィンドウサイズをコンテンツに合わせて調整するか
ウィンドウのサイズ(幅・高さ)をコンテンツに合わせて自動的に調整するかを示す。
型は SizeToContent 列挙型、既定値は Manual 。
設定値 |
概略 |
幅 (Width) |
高さ (Height) |
Normal |
既定値。サイズが自動調整されない。 |
有効 |
有効 |
Width |
幅のみ自動調整される。Width の設定は無視される。 |
無効 |
有効 |
Height |
高さのみ自動調整される。Height の設定は無視される。 |
有効 |
無効 |
WidthAndHeight |
幅と高さの両方が自動調整される。Width 、Height の設定が無視される。 |
無効 |
無効 |
WindowStartupLocation
ウィンドウの初期表示位置を示す。型は WindowStartupLocation 列挙型、既定値は Manual 。
- Manual : 既定値。Left および Top で指定された位置を左上隅として表示する。
- CenterScreen : その時点でマウスカーソルが含まれる画面の中央に表示する。
- CenterOwner : 所有者ウィンドウ (Owner) の中央に表示する。
タイトルバーを残したまま閉じるボタンを非表示にする
WindowStyle プロパティで最大化、最小化ボタンを非表示にすることはできるが、閉じるボタンのみはプロパティの設定では非表示にできない。
コードビハインドを以下のように記述することで実現できる。#region ~ #endregion が該当箇所。
System.Runtime.InteropServices および System.Windows.Interop の参照を行うため、using で指定している。
(.NETのサポート範囲に無いためWin32 APIをコールする。)
MainWindow.xaml.cs (コードビハインド)
using System;
using System.Windows;
using System.Runtime.InteropServices; //< 参照設定
using System.Windows.Interop; //< 参照設定
namespace WindowMenuButtonHidden
{
public partial class MainWindow : Window
{
#region "最大化・最小化・閉じるボタンの非表示設定"
[DllImport("user32.dll")]
private static extern int GetWindowLong(IntPtr hWnd, int nIndex);
[DllImport("user32.dll")]
private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
const int GWL_STYLE = -16;
const int WS_SYSMENU = 0x80000;
protected override void OnSourceInitialized(EventArgs e)
{
base.OnSourceInitialized(e);
IntPtr handle = new WindowInteropHelper(this).Handle;
int style = GetWindowLong(handle, GWL_STYLE);
style = style & (~WS_SYSMENU);
SetWindowLong(handle, GWL_STYLE, style);
}
#endregion
public MainWindow()
{
InitializeComponent();
}
:
}
}